Decoding of reed-muller codes

ABSTRACT

Datawords encoded using a first-order Reed-Muller code are decoded using a Fast Hadamard Transform (FHT). Where the dataword is known to comprise a number of unused bits at one end, the soft decisions of the codeword are reordered. Majority polling is then performed on groups of the soft decisions to produce a series of soft decisions which make up a new codeword. The new codeword is then decoded using an FHT of lower order than the FHT applicable to the originally received codeword.

[0001] This invention relates to coding, i.e. encoding and decoding. Inparticular, the invention relates to decoding using a Hadamardtransform.

[0002] A binary word can be encoded using the first-order Reed-Mullercode. Where the word to be encoded comprises 5 bits, a1 to a5, then thecode comprises a code line for each bit, as follows: a1: 1111 1111 11111111 a2: 0101 0101 0101 0101 a3: 0011 0011 0011 0011 a4: 0000 1111 00001111 a5: 0000 0000 1111 1111

[0003] The code for a particular word is created by combining the codelines corresponding to the non zero bits of the word to be encoded. Thecode lines are combined by bit-wise, modulo-2 summation to produce theencoded word. For example, consider the word 10110 (a1=1, a2=0, a3=1,a4=1, a5=0). This word becomes encoded as 1100 0011 1100 0011 bycombining the a1, a3 and a4 code lines. Words encoded in this manner aredecoded at a receiver using a Fast Hadamard Transform, FHT.

[0004] An aim of the invention is to enhance the decoding of words usinga Hadamard transform.

[0005] According to a first aspect, the invention provides a method ofproducing a second binary codeword from a first binary codeword destinedfor decoding using a Hadamard transform, the method comprising selectingsoft decisions from the first codeword into one or more groups, andcombining the soft decisions within each group to produce a number ofresultant soft decisions forming the second codeword.

[0006] According to a second aspect, the invention also providesapparatus for producing a second binary codeword from a first binarycodeword destined for decoding using a Hadamard transform, the apparatuscomprising selecting means for selecting soft decisions from the firstcodeword into one or more groups, and combining means for combining thesoft decisions of each group to produce a number of resultant softdecisions forming the second codeword.

[0007] By manipulating a first codeword in this way, a second codewordis produced which can be decoded optimally in terms of error recoveryeven where the dataword encoded as the first codeword has a number ofunused bits at one end.

[0008] An example of a coding system in which the invention can be usedis TFCI decoding in third generation mobile telecommunications (UMTS).The TFCI is a 10 bit dataword encoded into a 32 bit codeword. The first6 bits of the TFCI word are encoded using the first order Reed-Mullercode. Many channels use less than 6 bits for the TFCI and the inventioncan be used to gain improved error recovery in such cases.

[0009] In one embodiment, the soft decisions selected for each group area group of soft decisions that would appear consecutively in the firstcodeword if it were permuted by, for each soft decision in the firstcodeword, taking the position of said soft decision in the firstcodeword as a decimal number and converting said decimal number intobinary number, bit reversing the binary number, and converting thereversed binary number into a decimal number giving the position of saidsoft decision in the permuted codeword.

[0010] In a preferred embodiment, the first codeword is permuted by, foreach soft decision in the first codeword, moving said soft decision by aprocess of, or equivalent to, taking the position of the soft decisionin the first codeword as a decimal number and converting said decimalnumber into binary number, bit reversing the binary number, andconverting the reversed binary number into a decimal number giving theposition of said soft decision in the permuted codeword, and thereafterthe soft decisions of the permuted codeword are grouped by selectinggroups of consecutive soft decisions from the permuted codeword.

[0011] In one embodiment, the combining operation comprises generatingeach soft decision of the second codeword from a group of soft decisionsby summing the soft decisions of the group. The size of the groups maydepend upon the number of unused bits at one end of a dataword encodedas the first codeword.

[0012] The first codeword may be produced by encoding a dataword usingthe first order Reed-Muller code.

[0013] The invention also extends to using a Hadamard transform todecode the manipulated codeword.

[0014] By way of example only, an embodiment of the invention will nowbe described with reference to the accompanying figure which shows areceiver having a decoder employing a Fast Hadamard Transform (FHT).

[0015] As shown in FIG. 1, receiver 10 receives a stream of softdecisions 12. The soft decisions 12 originate from the transmission by atransmitter (e.g. a base station in a wireless telephony system) of aseries of 5 bit datawords, each of which has been encoded by thefirst-order Reed-Muller code to produce a corresponding 16 bit codeword.The stream of soft decisions therefore comprises a series of codewords,each 16 soft decisions long. The receiver 10 decodes the codewords inthe soft decision stream 12 using a Hadamard transform, therebyrecovering the datawords.

[0016] Where each of the 32 possible datawords is equally likely, then astandard, 16-point FHT decodes the codewords optimally, in terms oferror recoverability. However, the 16-point FHT will not be optimal incases where the encoded dataword is known to use only a portion at theleast significant end of the dataword (e.g., the most significant bit isnot used).

[0017] When the receiver 10 decodes a codeword relating to a datawordwhich uses all 5 bits, then the decoding process is performed using adecoder 14 operating a 16-point FHT algorithm. When the receiver 10decodes a codeword relating to a dataword which does not use at leastthe most significant bit, then the codeword is decoded in a differentway, by first passing the codeword to permuting unit 16.

[0018] The permuting unit 16 permutes the soft decisions (SDs) of acodeword in the following way. A codeword contains 16 SDs in positionsnumbered from 0 to 15 in decimal notation. The SDs are permuted withinthe codeword in the manner indicated by the following table. The top rowof the table indicates the positions of the SDs in the codeword asreceived by the permuting unit 16, and the bottom row indicates theorder of those SDs in the permuted codeword. Received 0 1 2 3 4 5 6 7 89 10 11 12 13 14 15 Permuted 0 8 4 12 2 10 6 14 1 9 5 13 3 11 7 15

[0019] Effectively then, the decimal number of each position isconverted to a binary number, which is subsequently reversed andconverted back to a decimal number which is the position of the SD inthe permuted codeword. Consider the SD at position 05 in a receivedcodeword. When the codeword is permuted, the SD is transferred thus:05→0101→1010→10, i.e. to position 10 in the permuted codeword. All ofthe SDs of the received codeword are permuted in this way, as indicatedby the above table.

[0020] The effect of the permutation can be considered the same astaking the codelines used to produce the codewords, other than that forthe most significant bit of the dataword, and reversing their order. Forexample, referring to the scheme used in the introduction where 5 bitdatawords are encoded using corresponding codelines a1 to a5, the effectof permuting the codewords is equivalent to producing the codewords byan alternative set of codelines c1 to c5, where c1=a1, c2=a5, c3=a4,c4=a3, and c5=a2.

[0021] The combiner 18 divides up the permuted codeword into groups ofSDs. The number of groups depends on the number of non-used bits at themost significant end of the dataword represented by the codeword. Whereonly the 4 least significant bits are used in the dataword, then thecodeword is divided into 8 groups of 2 SDs. Where only the 3 leastsignificant bits are used in the dataword, then the codeword is dividedinto 4 groups of 4 SDs. Where only the 2 least significant bits are usedin the dataword, then the codeword is divided into 2 groups of 8 SDs.Where the least significant bit only is used in the dataword, then thecodeword is treated as a single group of 16 SDs.

[0022] Each group contains consecutive SDs from the permuted codeword.The combiner 18 performs majority polling on the SDs in each group. EachSD is represented by a word comprising a sign (positive ornegative—indicating that the bit appears to be a zero or a one,respectively) and a magnitude (indicating the confidence in the decisionthat the bit is correctly designated a one or a zero). The majoritypolling comprises summing the soft decisions of a group to produce anoverall soft decision representing the group. Taken together, theseresultant SDs constitute a resultant codeword which is then decodedusing a FHT in decoder 20.

[0023] Since the resultant codeword supplied to decoder 20 has fewer SDsthan the initial codeword, it can be handled using a lower order FHTthan the FHT applicable to the initial codeword. Error correctionperformance is improved by performing the permuting/majority polling oncodewords corresponding to datawords having unused bits.

[0024] Although the embodiment described above operates with datawordsof 5 bits, it will be apparent that the invention extends to systemsusing datawords having more or less than 5 bits.

[0025] Furthermore, although the described embodiment permutes the firstcodeword and then selects consecutive soft decisions for each group, itwill be apparent that soft decisions may be selected directly into thegroups to give the effect of the permutation followed by selection ofconsecutive soft decisions, but without having to use the intermediatestep of having to explicitly permute the first codeword.

1. A method of producing a second binary codeword from a first binarycodeword destined for decoding using a Hadamard transform, the methodcomprising selecting soft decisions from the first codeword into one ormore groups, and combining the soft decisions within each group toproduce a number of resultant soft decisions forming the secondcodeword.
 2. A method according to claim 1, wherein the soft decisionsselected for each group are those soft decisions that would appear as aconsecutive group in the first codeword if it were permuted by, for eachsoft decision in the first codeword, taking the position of said softdecision in the first codeword as a decimal number and converting saiddecimal number into a binary number, bit reversing the binary number,and converting the reversed binary number into a decimal number givingthe position of said soft decision in the permuted codeword.
 3. A methodaccording to claim 1 or 2, further comprising the steps of permuting thefirst codeword by, for each soft decision in the first codeword, movingsaid soft decision by a process of, or equivalent to, taking theposition of said soft decision in the first codeword as a decimal numberand converting said decimal number into a binary number, bit reversingthe binary number, and converting the reversed binary number into adecimal number giving the position of said soft decision in the permutedcodeword, and wherein the selecting step comprises selecting groups ofconsecutive bits from the permuted codeword.
 4. A method according toany one of claims 1 to 3, wherein combining a group of soft decisionscomprises summing the soft decisions in the group.
 5. A method accordingto claim 4, wherein the size of the groups is dependent upon the numberof unused bits at one end of a dataword encoded into the first codeword.6. A method according to claim 5, wherein the first codeword is producedby encoding the dataword using a Reed-Muller algorithm.
 7. A method ofdecoding a first binary codeword comprising manipulating the firstcodeword using the method of any one of claims 1 to 6 to produce asecond binary codeword, and decoding the second binary codeword using aHadamard transform.
 8. A method according to claim 7, wherein saidHadamard transform is of a lower order than the Hadamard transformapplicable to the first codeword.
 9. Apparatus for producing a secondbinary codeword from a first binary codeword destined for decoding usinga Hadamard transform, the apparatus comprising selecting means forselecting soft decisions from the first codeword into one or moregroups, and combining means for combining the soft decisions of eachgroup to produce a number of resultant soft decisions forming the secondcodeword.
 10. Apparatus according to claim 9, wherein the selectingmeans is arranged such that the soft decisions selected for each groupare those soft decisions that would appear as a consecutive group in thefirst codeword if it were permuted by, for each soft decision in thefirst codeword, taking the position of said soft decsion in the firstcodeword as a decimal number and converting said decimal number into abinary number, bit reversing the binary number, and converting thereversed binary number into a decimal number giving the position of saidsoft decision in the permuted codeword.
 11. Apparatus according to claim9 or 10, wherein the selecting means comprises permuting means forpermuting the first codeword by, for each soft decision in the firstcodeword, moving said soft decision by a process of, or equivalent to,taking the position of said soft decision in the first codeword as adecimal number and converting said decimal number into a binary number,bit reversing the binary number, and converting the reversed binarynumber into a decimal number giving the position of said soft decisionin the permuted codeword, and grouping means for selecting the groups asgroups of consecutive bits of the permuted codeword.
 12. Apparatusaccording to claim 7, wherein the combining means is arranged to combinea group of soft decisions by summing the soft decisions within thegroup.
 13. Apparatus according to claim 12, wherein the size of thegroups is dependent on the number of unused bits at one end of adataword encoded into the first codeword.
 14. Apparatus according toclaim 13, wherein the first codeword is produced by encoding thedataword using a Reed-Muller algorithm.
 15. Apparatus for decoding afirst binary codeword comprising apparatus according to any one ofclaims 9 to 14 for manipulating the first codeword to produce a secondbinary codeword, and further comprising means for decoding the secondbinary codeword using a Hadamard transform.
 16. Apparatus according toclaim 15, wherein the Hadamard transform applicable to the secondcodeword is of lower order than the Hadamard transform applicable to thefirst codeword.
 17. A method of manipulating a codeword, substantiallyas hereinbefore described with reference to the accompanying figure. 18.A method of decoding a codeword, substantially as hereinbefore describedwith reference to the accompanying figure.
 19. Apparatus formanipulating a codeword, substantially as hereinbefore described withreference to the accompanying figure.
 20. Apparatus for decoding acodeword, substantially as hereinbefore described with reference to theaccompanying figure.
 21. A program for carrying out the method of anyone of claims 1 to 8.